import { useRef } from 'react'

// 定义节流 Hook
const useThrottle = (callback: Function, delay: number) => {
  // 使用 useRef 来存储上一次执行的时间
  const lastExecTimeRef = useRef(0)

  // 返回一个新的函数，该函数会进行节流处理
  return (...args: any[]) => {
    // 获取当前时间戳
    const now = Date.now()
    // 如果距离上一次执行已经超过了指定的延迟时间
    if (now - lastExecTimeRef.current >= delay) {
      // 执行传入的回调函数，并传入参数
      callback(...args)
      // 更新上一次执行的时间为当前时间
      lastExecTimeRef.current = now
    }
  }
}

export default useThrottle
